/**
 * Copyright &copy; 2012-2014 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.employee.entity;

import org.hibernate.validator.constraints.Length;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

import javax.validation.constraints.NotNull;

import com.thinkgem.jeesite.common.persistence.DataEntity;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;

/**
 * 员工加班Entity
 * @author hui.li
 * @version 2017-07-18
 */
public class EmployeeOvertime extends DataEntity<EmployeeOvertime> {
	
	private static final long serialVersionUID = 1L;
	private String employeeNumber;		// 员工编号
	private String employeeName;		// 员工姓名
	private String type;		// 加班类型
	private Date startTime;		// 开始时间
	private Date endTime;		// 结束时间
	private String tuneOff;		// 是否转调休
	private String overtimeTime;		// 加班时长
	private String currentApprover;		// 当前审批人
	private Date beginStartTime;		// 开始 开始时间
	private Date endStartTime;		// 结束 开始时间
	
	public EmployeeOvertime() {
		super();
	}

	public EmployeeOvertime(String id){
		super(id);
	}

	@Length(min=1, max=100, message="员工编号长度必须介于 1 和 100 之间")
	@ExcelField(title="员工编号", type=0, align=2, sort=10)
	public String getEmployeeNumber() {
		return employeeNumber;
	}

	public void setEmployeeNumber(String employeeNumber) {
		this.employeeNumber = employeeNumber;
	}
	
	@Length(min=1, max=100, message="员工姓名长度必须介于 1 和 100 之间")
	@ExcelField(title="员工姓名", type=0, align=2, sort=20)
	public String getEmployeeName() {
		return employeeName;
	}

	public void setEmployeeName(String employeeName) {
		this.employeeName = employeeName;
	}
	
	@Length(min=1, max=64, message="加班类型长度必须介于 1 和 64 之间")
	@ExcelField(title="加班类型", type=0, align=2, sort=30, dictType="overtime_type")
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="开始时间不能为空")
	@ExcelField(title="开始时间", type=0, align=2, sort=40)
	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="结束时间不能为空")
	@ExcelField(title="结束时间", type=0, align=2, sort=50)
	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}
	

	@ExcelField(title="是否转调休", type=0, align=2, sort=60)
	public String getTuneOff() {
		return tuneOff;
	}

	public void setTuneOff(String tuneOff) {
		this.tuneOff = tuneOff;
	}
	
	@Length(min=1, max=11, message="加班时长长度必须介于 1 和 11 之间")
	@ExcelField(title="加班时长", type=0, align=2, sort=70)
	public String getOvertimeTime() {
		return overtimeTime;
	}

	public void setOvertimeTime(String overtimeTime) {
		this.overtimeTime = overtimeTime;
	}
	

	@ExcelField(title="当前审批人", type=0, align=2, sort=80)
	public String getCurrentApprover() {
		return currentApprover;
	}

	public void setCurrentApprover(String currentApprover) {
		this.currentApprover = currentApprover;
	}
	
	public Date getBeginStartTime() {
		return beginStartTime;
	}

	public void setBeginStartTime(Date beginStartTime) {
		this.beginStartTime = beginStartTime;
	}
	
	public Date getEndStartTime() {
		return endStartTime;
	}

	public void setEndStartTime(Date endStartTime) {
		this.endStartTime = endStartTime;
	}
		
}